package 经典例题;


import java.util.LinkedList;

public class 环路检测 {
    //哈希表
    public ListNode detectCycle(ListNode head) {
        LinkedList<ListNode> list = new LinkedList<>();
        ListNode cur=head;
        while (cur!=null){
            if (!list.contains(cur)){
                list.add(cur);
            }
            else
                return cur;
            cur=cur.next;
        }
        return null;
    }
    // 快慢指针 、
//    public ListNode detectCycle(ListNode head) {
//        ListNode slow = head, fast = head;
//        while (fast != null && fast.next != null) {
//            slow = slow.next;
//            fast = fast.next.next;
//            if (slow == fast) {
//                fast = head;
//                while (slow != fast) {
//                    slow = slow.next;
//                    fast = fast.next;
//                }
//                return slow;
//            }
//        }
//        return null;
//    }
}
